home *** CD-ROM | disk | FTP | other *** search
/ Viaggio in Francia / Viaggio in Francia.iso / SETFILES / SETUP.MST < prev    next >
Text File  |  1995-10-24  |  12KB  |  435 lines

  1. '**************************************************************************
  2. '*                       MSSetup Telemedia
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG   ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'setst.inc'
  10.  
  11. ''Dialog ID's
  12. CONST ASKQUIT      = 200
  13. CONST DESTPATH     = 300
  14. CONST EXITFAILURE  = 400
  15. CONST EXITQUIT     = 600
  16. CONST EXITSUCCESS  = 700
  17. CONST OPTIONS      = 800
  18. CONST APPHELP      = 900
  19. CONST RESTART      = 2600
  20. CONST RESTARTII    = 2700
  21. CONST CUSTINST     = 6200
  22. CONST TELEINST     = 6250
  23. CONST TOOBIG       = 6300
  24. CONST BADPATH      = 6400
  25.  
  26. ''Bitmap ID
  27. CONST LOGO         = 1
  28.  
  29. ''File Types
  30. CONST APPFILES     = 1
  31. CONST OPTFILES1    = 2
  32. CONST OPTFILES2    = 3
  33.  
  34. GLOBAL SRCDIR$
  35.  
  36. GLOBAL DEST$        ''Default destination directory.
  37. GLOBAL WINDRIVE$    ''Windows drive letter.
  38. GLOBAL WINDIR$
  39. GLOBAL WINSYSDIR$
  40. GLOBAL TBKDIR$
  41. GLOBAL SndDIR$
  42. GLOBAL SndZiel$
  43. GLOBAL TBKDEST$
  44. GLOBAL NEEDET&
  45. GLOBAL DRVSPACE&
  46. GLOBAL tb15Path$
  47.  
  48. '' Driver 
  49. CONST ADDVFW            = 1
  50. GLOBAL VFWPATH$
  51.  
  52.  
  53. ''CustInst list symbol names
  54.  
  55. ''Dialog list symbol names
  56. GLOBAL STATUSTEXT$
  57. GLOBAL DRIVETEXT$
  58.  
  59.  
  60. DECLARE SUB BuildCopyList
  61. DECLARE SUB CalculateCopyList
  62. DECLARE SUB SetDriveStatus
  63. DECLARE SUB RegisterEntries
  64. DECLARE SUB CreateIniEntries
  65. DECLARE SUB SetupProgman
  66.  
  67. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  68.  
  69. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  70. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  71. DECLARE SUB Reboot LIB "iniupd.dll"
  72. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  73.  
  74.  
  75. TRAP CleanupTrap From "MSSHLSTF.DLL"
  76.  
  77. End Trap           
  78.         
  79.  
  80.  
  81.         Inst% = HinstFrame()
  82.  
  83.  
  84.     ii% = CreateCover(0, 0, 0, 0, 0)
  85.     
  86.         ret% = Ctl3dRegister(Inst%)
  87.         ret% = Ctl3dAutoSubClass(Inst%)
  88.  
  89.         hSetup = InitSetup(COMMAND$)
  90.         hWnd% = HwndFrame()
  91.     ret% = SubSetMainWin(hWnd%)
  92.     
  93.     ii% = CloseCover()
  94.  
  95.  
  96.     WIN32ENABLED% = 0
  97.     MajorVer% = GetWindowsMajorVersion()
  98.     MinorVer% = GetWindowsMinorVersion()
  99.  
  100.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  101.         i% = DoMsgBox("E' richiesto Microsoft Windows versione 3.10 o successiva", "Problema d'installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  102.         END
  103.     END IF
  104.         
  105.     IF DeviceColor() <= 256 THEN
  106.        ii% = DoMsgBox("Il video deve essere regolato per almeno 32.000 colori", "Hardware", MB_OK)
  107.        GOTO QUIT
  108.     END IF
  109.  
  110.  
  111. ON ERROR GOTO QUIT
  112.  
  113. INIT:
  114.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  115.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  116.     SetTitle "Viaggio in Francia"
  117.     VFWPATH$ = "VFW\"
  118.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  119.     IF szInf$ = "" THEN
  120.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  121.     END IF
  122.  
  123.     ReadInfFile szInf$
  124.  
  125.     WINDRIVE$ = UCASE$(MID$(GetWindowsDir, 1, 1))
  126.     DEST$ = WINDRIVE$ + ":\France"
  127.         WINDIR$ = GetWindowsDir()
  128.         WINSYSDIR$ = GetWindowsSysDir()
  129.  
  130.     ''CustInst list symbols
  131.  
  132.     STATUSTEXT$  = "StatusItemsText"
  133.     DRIVETEXT$   = "DriveStatusText"
  134.  
  135.     
  136.     FOR i% = 1 TO 3 STEP 1
  137.         AddListItem STATUSTEXT$, ""
  138.     NEXT i%
  139.  
  140.     FOR i% = 1 TO 2 STEP 1
  141.         AddListItem DRIVETEXT$, ""
  142.     NEXT i%
  143.  
  144.     ReplaceListItem DRIVETEXT$, 2, DEST$
  145.     
  146.     SetDriveStatus
  147.  
  148.  
  149. CUSTINST:
  150.     sz$ = UIStartDlg(CUIDLL$, TELEINST, "FTeleInstDlgProc", APPHELP, HELPPROC$)
  151.  
  152.     IF sz$ = "CONTINUE" THEN
  153.         ''Install only if it will fit.
  154.                 BuildCopyList
  155.                 CalculateCopyList
  156.                 IF NEEDET& <> 0 THEN
  157.                         GOSUB TOOBIG
  158.                         GOTO CUSTINST
  159.                 END IF
  160.         UIPop 1
  161.         GOTO INSTALL
  162.     ELSEIF sz$ = "PATH" THEN
  163.         GOTO GETPATH
  164.     ELSEIF sz$ = "REACTIVATE" THEN
  165.         SetDriveStatus
  166.         GOTO CUSTINST
  167.     ELSE
  168.         GOSUB ASKQUIT
  169.         GOTO CUSTINST
  170.     END IF
  171.  
  172.  
  173.  
  174. INSTALL:
  175.     CreateDir DEST$, cmoNone
  176.    
  177.     BuildCopyList
  178.     CopyFilesInCopyList
  179.     CreateIniEntries
  180.     RegisterEntries
  181.     SetupProgman
  182.  
  183.  
  184.     RESTRT% = RestartListEmpty ()
  185.     Exe$ = DEST$ + "\_msrstrt.exe"
  186.     Batch$ = DEST$ + "\_mssetup.bat"
  187.     empty$ = ""
  188.     
  189.  RESTART:
  190. IF RESTRT% = 0 THEN
  191.         sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  192.         IF sz$ = "REACTIVATE" THEN
  193.                 GOTO RESTART
  194.         ENDIF
  195.         I% = ExitExecRestart ()
  196.         RemoveFile Exe$, cmoForce
  197.         RemoveFile Batch$, cmoForce
  198.         END
  199. ELSE
  200.         sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  201.         IF sz$ = "CONTINUE" THEN
  202.                 I% = ExitWindowsExec (Exe$, empty$)
  203.                 IF I% = 0 THEN
  204.                         GOTO RESTART
  205.                 ELSE
  206.                         END
  207.                 ENDIF
  208.         ELSEIF sz$ = "EXIT" THEN
  209.                 UIPopAll
  210.                 END
  211.         ELSEIF sz$ = "REACTIVATE" THEN
  212.                 GOTO RESTART
  213.         ELSE
  214.                 UIPop 1
  215.         END IF
  216. END IF
  217.  
  218.  
  219. QUIT:
  220.     ''ON ERROR GOTO ERRQUIT
  221.  
  222.     IF ERR = 0 THEN
  223.         dlg% = EXITSUCCESS
  224.     ELSEIF ERR = STFQUIT THEN
  225.         dlg% = EXITQUIT
  226.     ELSE
  227.         dlg% = EXITQUIT          ''EXITFAILURE
  228.     END IF
  229.  
  230.  
  231. ERRQUIT:
  232.      i% = DoMsgBox("VIAGGIO IN FRANCIA non Φ stato installato correttamente", "Errore di installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  233.     END
  234.  
  235.  
  236.  
  237. GETPATH:
  238.     SetSymbolValue "EditTextIn", DEST$
  239.     SetSymbolValue "EditFocus", "END"
  240. GETPATHL1:
  241.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  242.  
  243.     IF sz$ = "CONTINUE" THEN
  244.         olddest$ = DEST$
  245.         DEST$ = GetSymbolValue("EditTextOut")
  246.  
  247.         ''Validate new path.
  248.         IF IsDirWritable(DEST$) = 0 THEN
  249.             GOSUB BADPATH
  250.             GOTO GETPATHL1
  251.         END IF
  252.         UIPop 1
  253.  
  254.         ''Truncate display if too long.
  255.         IF LEN(DEST$) > 23 THEN
  256.             ReplaceListItem DRIVETEXT$, 2, MID$(DEST$, 1, 23)+"..."
  257.         ELSE
  258.             ReplaceListItem DRIVETEXT$, 2, DEST$
  259.         END IF
  260.  
  261.         ''Recalc if path changed.
  262.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  263.             SetDriveStatus
  264.         END IF
  265.  
  266.         olddest$ = ""
  267.         GOTO CUSTINST
  268.     ELSEIF sz$ = "REACTIVATE" THEN
  269.         SetDriveStatus
  270.         GOTO GETPATHL1
  271.     ELSEIF sz$ = "EXIT" THEN
  272.         GOSUB ASKQUIT
  273.         GOTO GETPATHL1
  274.     ELSE
  275.         UIPop 1
  276.         GOTO CUSTINST
  277.     END IF
  278.  
  279.  
  280.  
  281. TOOBIG:
  282.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  283.     IF sz$ = "REACTIVATE" THEN
  284.         SetDriveStatus
  285.         GOTO TOOBIG
  286.     END IF
  287.     UIPop 1
  288.     RETURN
  289.  
  290.  
  291.  
  292. BADPATH:
  293.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  294.     IF sz$ = "REACTIVATE" THEN
  295.         SetDriveStatus
  296.         GOTO BADPATH
  297.     END IF
  298.     UIPop 1
  299.     RETURN
  300.  
  301.  
  302.  
  303. ASKQUIT:
  304.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  305.  
  306.     IF sz$ = "EXIT" THEN
  307.         UIPopAll
  308.         ERROR STFQUIT
  309.     ELSEIF sz$ = "REACTIVATE" THEN
  310.         GOTO ASKQUIT
  311.     ELSE
  312.         UIPop 1
  313.     END IF
  314.     RETURN
  315.  
  316.  
  317.  
  318. SUB CalculateCopyList STATIC
  319.         NEEDET& = GetCopyListCost("", "", "")   
  320. END SUB
  321.  
  322. SUB SetupProgman STATIC
  323.         '' Todo Add Progman Commands
  324.  
  325.         CreateProgmanGroup "E.M.M.E. MULTIMEDIA", "", cmoOverwrite
  326.         ShowProgmanGroup "E.M.M.E. MULTIMEDIA", 1, cmoNone
  327.         CreateProgmanItem "E.M.M.E. MULTIMEDIA", "Viaggio in Francia", MakePath(dest$,"france.exe"),MakePath(DEST$,"france.exe"), cmoOverwrite 
  328.  
  329. END SUB
  330.  
  331. SUB BuildCopyList STATIC
  332.  
  333.     SRCDIR$  = GetSymbolValue("STF_SRCDIR")
  334.     TBSRC$   = MakePath(SRCDIR$, TBKDIR$)        
  335.     sndSRC$  = MakePath(SRCDIR$, sndDIR$)        
  336.     snddest$ = MakePath(Dest$, SndZiel$)         
  337.     TBKDEST$ = MakePath(WINDIR$, "asym\runtime\")        
  338.     source$ = MakePath(srcdir$, "setup\")        
  339.  
  340.     ClearCopyList
  341.             addsectionFilesToCopyList "WINDO", SOURCE$, WINDIR$
  342.                    addsectionFilesToCopyList "DEFAULT", SOURCE$, DEST$
  343.         ''addsectionFilesToCopyList "SISTEM", SOURCE$, WINSYSDIR$
  344.  
  345.     IF ADDVFW <> 0 THEN                        
  346.         '' Video for Windows Files
  347.  
  348.         VFWSRC$= MakePath(SRCDIR$, VFWPATH$)    
  349.         addsectionFilesToCopyList "VfW Runtime", VFWSRC$, WINSYSDIR$
  350.         addsectionFilesToCopyList "OLE2", VFWSRC$, WINSYSDIR$
  351.         addsectionFilesToCopyList "ACM Drivers", VFWSRC$, WINSYSDIR$
  352.         addsectionFilesToCopyList "MPlayer", VFWSRC$, WINDIR$
  353.         addsectionFilesToCopyList "AVICodecs", VFWSRC$, WINSYSDIR$
  354.         AddSectionFilesToCopyList "remove", SrcDir$, WinSysDir$
  355.     END IF
  356. END SUB
  357.  
  358.  
  359. SUB CreateIniEntries STATIC
  360.  
  361.         '' Default Entries
  362.  ini$ = MakePath(WINDIR$, "francia.INI")
  363.         CreateIniKeyValue WinDir$ + "francia.ini","Path", "principale", srcdir$, cmoOverwrite
  364.            valore$ = GetIniKeyString(WinDir$ + "system.ini", "mci", "WaveAudio")
  365.     valore$ = LCASE$(MID$(RTRIM$(LTRIM$(valore$)),1,11))
  366.     IF valore$ = "mciwave.drv" THEN
  367.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "WaveAudio", "mciwave.drv 9", cmoOverwrite
  368.     END IF
  369.    
  370.         IF ADDVFW <> 0 THEN                        
  371.         '' Video for Windows Entries
  372.  
  373.     IF VflatdPresent() = 0 THEN
  374.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  375.     END IF
  376.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  377.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  378.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  379.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  380.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  381.     I% = DoesIniKeyExist (WinDir$ + "system.ini", "Drivers", "VIDC.RT21")
  382.     IF I% = 0  THEN
  383.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  384.     END IF
  385.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  386.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  387.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  388.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  389.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  390.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  391.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  392.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  393.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  394.  
  395.  
  396. END IF
  397. END SUB
  398.  
  399.  
  400. SUB RegisterEntries STATIC
  401.  
  402.         '' Default Registers
  403.  
  404.         
  405.         IF ADDVFW <> 0 THEN                        
  406.         '' Video for Windows Entries
  407.  
  408.                 Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  409.                 Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  410.                 Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  411.  
  412.         END IF
  413. END SUB
  414.  
  415.  
  416. SUB SetDriveStatus STATIC
  417.  
  418.     free& = GetFreeSpaceForDrive(MID$(DEST$, 1, 1))
  419.     ReplaceListItem DRIVETEXT$, 1, STR$(free& / 1024) + " K"
  420.  
  421. END SUB
  422.  
  423. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  424.     IF szDir$ = "" THEN
  425.         MakePath = szFile$
  426.     ELSEIF szFile$ = "" THEN
  427.         MakePath = szDir$
  428.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  429.         MakePath = szDir$ + szFile$
  430.     ELSE
  431.         MakePath = szDir$ + "\" + szFile$
  432.     END IF
  433. END FUNCTION
  434.  
  435.